package com.bdqn.component;

import org.apache.commons.lang3.StringUtils;
import org.springframework.web.servlet.i18n.AcceptHeaderLocaleResolver;

import javax.servlet.http.HttpServletRequest;
import java.util.Locale;

public class ParamterAndAcceptHeaderLocaleResolver  extends AcceptHeaderLocaleResolver {

    @Override
    public Locale resolveLocale(HttpServletRequest request) {
        String  lang=request.getParameter("lang");

        if(StringUtils.isEmpty(lang)){ //如果请求中没有参数lang，那就使用请求头方式
            lang=(String)request.getSession().getAttribute("lang");
            if(StringUtils.isEmpty(lang)) {
                return super.resolveLocale(request);
            }
        }
        //将参数存储session方便后面其他页面使用
        request.getSession().setAttribute("lang",lang);
        if(lang.contains("_")&&lang.split("_").length>1){ //说有设置了语言和国家
            return new Locale(lang.split("_")[0],lang.split("_")[1]);
        }else if(lang.contains("_")&&lang.split("_").length==1){
            return new Locale(lang.split("_")[0]);
        }else{ //否者只是设置了语言
            return new Locale(lang);
        }
    }
}
